* Step 1: DependencyPairs WORST_CASE(?,O(1))
+ Considered Problem:
- Strict TRS:
f(s(x),y,y) -> f(y,x,s(x))
g(x,y) -> x
g(x,y) -> y
- Signature:
{f/3,g/2} / {s/1}
- Obligation:
innermost runtime complexity wrt. defined symbols {f,g} and constructors {s}
+ Applied Processor:
DependencyPairs {dpKind_ = DT}
+ Details:
We add the following dependency tuples:
Strict DPs
f#(s(x),y,y) -> c_1(f#(y,x,s(x)))
g#(x,y) -> c_2()
g#(x,y) -> c_3()
Weak DPs
and mark the set of starting terms.
* Step 2: UsableRules WORST_CASE(?,O(1))
+ Considered Problem:
- Strict DPs:
f#(s(x),y,y) -> c_1(f#(y,x,s(x)))
g#(x,y) -> c_2()
g#(x,y) -> c_3()
- Weak TRS:
f(s(x),y,y) -> f(y,x,s(x))
g(x,y) -> x
g(x,y) -> y
- Signature:
{f/3,g/2,f#/3,g#/2} / {s/1,c_1/1,c_2/0,c_3/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {f#,g#} and constructors {s}
+ Applied Processor:
UsableRules
+ Details:
We replace rewrite rules by usable rules:
f#(s(x),y,y) -> c_1(f#(y,x,s(x)))
g#(x,y) -> c_2()
g#(x,y) -> c_3()
* Step 3: Trivial WORST_CASE(?,O(1))
+ Considered Problem:
- Strict DPs:
f#(s(x),y,y) -> c_1(f#(y,x,s(x)))
g#(x,y) -> c_2()
g#(x,y) -> c_3()
- Signature:
{f/3,g/2,f#/3,g#/2} / {s/1,c_1/1,c_2/0,c_3/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {f#,g#} and constructors {s}
+ Applied Processor:
Trivial
+ Details:
Consider the dependency graph
1:S:f#(s(x),y,y) -> c_1(f#(y,x,s(x)))
2:S:g#(x,y) -> c_2()
3:S:g#(x,y) -> c_3()
The dependency graph contains no loops, we remove all dependency pairs.
* Step 4: EmptyProcessor WORST_CASE(?,O(1))
+ Considered Problem:
- Signature:
{f/3,g/2,f#/3,g#/2} / {s/1,c_1/1,c_2/0,c_3/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {f#,g#} and constructors {s}
+ Applied Processor:
EmptyProcessor
+ Details:
The problem is already closed. The intended complexity is O(1).
WORST_CASE(?,O(1))